04. Back-End Programming Fact Sheet

Back-End Programming Fact Sheet

Back-End Fact Sheet

Here are some quick facts that can help you evaluate whether Back-End Programming is the right path for you!

What are the different types of back-end programmers?

  • Back-end programmers are differentiated by the languages and technology stacks they use. Back-end programmers can be generalists or they can specialize in areas like devops/infrastructure, internal tooling, api design, and database administration.

What are essential back-end programming skills?

  • Software architecture- The ability to translate project requirements into technical specifications.
  • Software deployment- The ability to make a software program ready and available for public use on the web.

What are the differences and similarities of back-end programming languages?

  • Considering the broad range of tasks that a back-end programmer can perform, it makes sense that there are a large range of programming languages and software that can be employed to perform these tasks. These can operate on a variety of levels, and it can be useful for a programmer to be comfortable with a variety of tools to accomplish their tasks. Different languages are typically associated with different stacks, although some components are interchangeable between stacks. For example Ruby is closely associated with the Rails framework and ActiveRecord Object Relational Mapping (ORM), while Python has several competing web frameworks and ORMs. The technologies used by back-end programmers tend to stick around longer than those used on the front-end because rearchitecting an application is a major undertaking. As a result back-end technologies change more slowly.

Why might a back-end language be more suitable for certain projects?

  • Languages differ in how quickly a programmer can produce a working product, but ease of development generally comes at the cost of performance and maintainability. Languages like Java and Go are popular among large teams and large projects because they enforce code organization and structure. Languages like Python, Ruby and Javascript allow rapid development and easy prototyping, but they don’t necessarily scale to heavy loads as easily. This implies cultural differences between the communities around different languages, and in the teams that use the different languages. Java in particular is used at larger enterprises. PHP tends to be seen in legacy applications.

What are the important concepts back-end programmers need to know:

  • The concept of a stack: The ‘stack’ refers to the combination of technologies a developer uses to implement a particular project. One of the first major stacks was the LAMP stack (Linux, Apache, MySQL, and PHP). Over time more stacks have emerged that use different components. For example nginx is a popular alternative to Apache for the webserver component of the stack. There are many SQL and nonSQL alternatives to MySQL in use today, and there are even more choices of programming languages and frameworks. Today the stack might also include the front-end technologies used by an application.
  • The concept of full-stack: A programmer who is competent in everything from front-end to back-end programming, including all elements of the stack. In practice very few people are truly experts in every component of a large application. It’s reasonable for a single programmer to be familiar with the entire stack, and to implement small applications and prototypes single handedly. A full-stack programmer should be able to research the topics they need to work with any part of an application despite not being a daily user of any one piece of the stack.

How will I know if I'm ready for a path in back-end programming?

If you've completed the previous lessons in this Nanodegree Program, you already have an understanding of Python and through the movie website project you learned how Python (the back-end) and HTML/CSS (the front-end) interact. Your next step is to learn how to store information in databases.

INSTRUCTOR NOTE:



Check out our blog post "Front-End vs. Back-End vs. Full-Stack Web Developers" to learn more about the differences between front-end and back-end programmers.